11.  objekt orientierte programmierung

11.1  grundbegriffe

Die grundkenntnisse über objekt-orientierte programmierung werden vorausgesetzt, hier wird nur gezeigt, wie man das auch mit PHP machen kann.

11.1.1  klasse definieren
Für eine klasse werden eigenschaften und meist auch methoden definiert.

class klasse
{    eigenschaften definieren

     [ methoden definieren ]
}

klassename einer klasse, eine bezeichnung wie der name einer variablen, aber ohne $-zeichen am anfang

11.1.2  eigenschaft definieren

typ eigenschaft [ = wert ];

eigenschaftname einer variablen, die hier üblicher weise als eigenschaft bezeichnet wird.
wertanfangswert der eigenschaft; der wert wird beim erzeugen eines objekts der klasse zugewiesen. Die möglichkeit wird eher selten verwendet, weil man das meist mit dem konstruktor erledigt (vgl. 11.2.1).
typtyp der eigenschaft
   privatedie eigenschaft ist nur innerhalb der klassendefinition verfügbar
   protecteddie eigenschaft ist in der klassen definition und in übergeordneten oder abgeleiteten klassen verfügbar
   publicdie eigenschaft ist überall verfügbar. Wird nur ausnahmsweise verwendet, weil es eigentlich dem sinn der objekt- orientierten programmierung widerspricht.

11.1.3  methode definieren
Eine methode wird wie eine funktion definiert und enthält anweisungen, mit denen eigenschaften der klasse bearbeitet werden.

[ typ ] name ( [ $par [ = wert ] , . . . ] )
{    $this->eigenschaft = wert | $par;
     $var = $this->eigenschaft;
     . . .
     [ return ergebnis; ]
}

namename der funktion, d.h. name der methode
typtyp der methode
   privatedie eigenschaft ist nur innerhalb der klassendefinition verfügbar
   protecteddie methode ist in der klassen definition und in übergeordneten oder abgeleiteten klassen verfügbar
   publicdie methode ist überall verfügbar, standard, d.h. die angabe darf fehlen
$par [ = wert ]parameter, für den beim aufruf der methode ein argument übergeben wird; der wert gilt, wenn kein argument übergeben wird. Als argument kann auch eine referenz auf ein objekt (vgl. 11.1.3) übergeben werden.
$this->bezug auf eine eigenschaft, die in der klasse definiert ist oder die in einer anderen klasse definiert und dort mit public oder protected deklariert ist. Der name der eigenschaft, wird ohne das $-zeichen angegeben.

11.1.4  objekt einer klasse verwenden
Außerhalb der klassendefinition gibt es verschiedene möglichkeiten, objekte zu verwenden.

$refer = new klasse();

Es wird eine instanz der klasse eingerichtet, d.h. es gibt nun ein objekt der klasse, dabei ist $refer keine gewöhnliche variable, sondern eine referenz (zeiger) auf das objekt.

$var = $refer->eigenschaft;

Der variablen $var wird eine eigenschaft des objekts zugewiesen, auf das $refer zeigt. Die eigenschaft muss den typ public oder protected haben

$refer->eigenschaft = wert;

Einer eigenschaft des objekts, auf das $refer zeigt, wird ein wert zugewiesen. Die eigenschaft muss den typ public oder protected haben

$refer->methode( [ wert, . . . ] )

Für das objekt, auf das $refer zeigt, wird die methode (funktion) ausgeführt. Methoden haben als standard den typ public.

achtung
In einer methode kann auf eine methode oder eigenschaft einer anderen klasse nur zugegriffen werden, wenn diese als public und static deklariert sind (vgl. 11.3)

11.1.5  beispiel
Die klassendefinition Test enthält zwei eigenschaften mit dem anfangswert null und zwei methoden. Mit der methode aendern werden die beiden eigenschaften geändert. Die methode anzeige zeigt die beiden eigenschaften an.

In der PHP-routine werden zwei objekte erzeugt und mit der methode anzeige angezeigt. Dann werden mit der methode aendern die eigenschaften der objekte geändert und die objekte erneut angezeigt. Dann wird für ein objekt eine eigenschaft geändert. Das ist so möglich, weil die eigenschaft den typ public hat. Zuletzt wird das objekt angezeigt.

OOP - grundbegriffe

erzeugte objekte
fall1: abteilung: 0 - beitrag: 0
fall2: abteilung: 0 - beitrag: 0

geänderte objekte
fall1: abteilung: 3 - beitrag: 15
fall2: abteilung: 1 - beitrag: 10.5

eigenschaft von fall1 geändert
fall1: abteilung: 2 - beitrag: 15


zum untermenü


    IMPRESSUM  

    KONTAKT  

    PRIVAT  

    D O K U  


  H T M L  
  C S S  
  p h p
  My S Q L  
  JAVASCRIPT